package main;

import java.io.IOException;

public class Contexto 
{
	static private Contexto instancia = null;
	
	public static final int SISTEMA_LINUX   = 0;
	public static final int SISTEMA_WINDOWS = 1;
	
	private int sistema;
	
	private int tamFonte;
	private String corFundo;
	private String corTexto;
	private String corFundoDestaque;
	private String corTextoDestaque;
	
	private Contexto()
	{
		tamFonte = 36;
		corFundo = "000000";
		corTexto = "FFFF00";
		corFundoDestaque = "0000FF";
		corTextoDestaque = "FFFFFF";
		
		// Aqui a gente deve descobrir em qual sistema está
		// Windows XP - Windows XP
		// Linux      - Linux
		if ( System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") != -1 )
			sistema = SISTEMA_WINDOWS;
		else
			sistema = SISTEMA_LINUX;
	}

	static public Contexto instancia()
	{
		if ( instancia == null )
			instancia = new Contexto();
		
		return instancia;
	}

	public int getSistema()						{ return sistema;			}
	public void setSistema(int sistema)			{ this.sistema = sistema;	}
	public int getTamFonte()					{ return tamFonte;			}
	public void setTamFonte(int tamFonte)		{ this.tamFonte = tamFonte;	}
	public String getCorFundo()					{ return corFundo;			}
	public void setCorFundo(String cf)			{ corFundo = cf;			}
	public String getCorTexto()					{ return corTexto;			}
	public void setCorTexto(String ct)			{ corTexto = ct;			}
	public String getCorFundoDestaque()			{ return corFundoDestaque;	}
	public void setCorFundoDestaque(String c) 	{ corFundoDestaque = c; 	}
	public String getCorTextoDestaque()			{ return corTextoDestaque;	}
	public void setCorTextoDestaque(String c)	{ corTextoDestaque = c;		}
	
	public String caminho( String path )
	{
		if ( sistema == SISTEMA_LINUX )
			path = path.replaceAll("\\\\","/");
		else
			path = path.replaceAll("/", "\\");
		
		return path;
	}
	
	public String separador()
	{
		return (sistema == SISTEMA_LINUX) ? "/" : "\\";
	}
	
	public String extraiCaminho(String nome)
	{
		int p = nome.lastIndexOf(separador());
		
		return (p != -1) ? nome.substring(0, p + 1) : "";			
	}
	
	public String getDirImagem()
	{
		return caminho("Configs\\images\\");
	}
	
	public String getDirAudio()
	{
		return caminho("Configs\\sounds\\");
	}
	
	public String getNomeArqImagem( String nome )
	{
		return caminho( "Configs\\images\\" + nome + ".gif" );
	}
	
	public String getNomeArqAudio( String nome )
	{
		return caminho( "Configs\\sounds\\" + nome + ".wav" );
	}
	
	public void execSint( String nome ) throws IOException
	{
		if ( sistema == SISTEMA_LINUX )
			Runtime.getRuntime().exec( "paplay " + caminho(nome) );
		else
			Runtime.getRuntime().exec( "Util\\toca.exe " + caminho(nome) );
	}
}
